﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Urgencias.Controlador;
using Urgencias.Modelo;

namespace Urgencias.Vista
{
    public partial class ModificarUrgenciaUC : UserControl
    {
        int ID_URGENCIA, NUMEROBOX;
        string ENCARGADO, PACIENTE, PRIORIDAD_URGENCIA, ESPECIALIDAD_URGENCIA, DIAGNOSTICO_URGENCIA;
        DateTime FECHAHORA_URGENCIA;

       
        public ModificarUrgenciaUC()
        {
            InitializeComponent();
        }

        private void IngresarUrgenciaUC_Load(object sender, EventArgs e)
        {
            foreach (var v in MedicoControlador.Instance.obtenerEspecialidadesMedicas())
            {
                especialidadCB.Items.Add(v);
            }
            especialidadCB.SelectedIndex = 0;
            urgenciaCB.DataSource = Enum.GetValues(typeof(NivelUrgencia));
        }

        public void reestablecer()
        {
            this.rutBox.ResetText();
            this.encargadoBox.ResetText();
            this.diagnosticoBox.ResetText();
            this.urgenciaCB.SelectedIndex = 0;
            this.especialidadCB.SelectedIndex = 0;
        }

        private void guardarBTN_Click(object sender, EventArgs e)
        {
            //string RutPaciente, EspecialidadUrgencia, DiagnosticoUrgencia, PrioridadUrgencia, Encargado;
            
            DIAGNOSTICO_URGENCIA = diagnosticoBox.Text;

            if (DIAGNOSTICO_URGENCIA.Length < 1)
            {
                MessageBox.Show(Properties.Resources.UrgenciasDiag);
                diagnosticoBox.Focus();
                return;
            }
            PACIENTE = rutBox.Text;
            ENCARGADO = encargadoBox.Text;
            ESPECIALIDAD_URGENCIA = especialidadCB.Text;
            PRIORIDAD_URGENCIA = urgenciaCB.Text;
            
            if (UrgenciaControlador.Instance.modificarUrgencia(ID_URGENCIA,NUMEROBOX,ENCARGADO,PACIENTE,FECHAHORA_URGENCIA,PRIORIDAD_URGENCIA,ESPECIALIDAD_URGENCIA,DIAGNOSTICO_URGENCIA))
            {
                reestablecer();
                MessageBox.Show(Properties.Resources.UrgenciasIngreso);
            }
            else
                MessageBox.Show(Properties.Resources.UrgenciasIngresoError);
        }

        private void cancelarBTN_Click(object sender, EventArgs e)
        {
            Principal.Instance.limpiar();
        }

        private void encargadoBTN_Click(object sender, EventArgs e)
        {
            Funcionario f = FuncionarioControlador.Instance.buscarFuncionarios(encargadoBox.Text);

            if (f==null)
            {
                MessageBox.Show(Properties.Resources.MedicoBError);
                encargadoBox.ResetText();
                encargadoBox.Focus();
            }
            else
            {
                this.nombreEncargado.Text = f.ApellidoPaterno+ " "+f.ApellidoMaterno+","+f.Nombre;
                this.urgenciaCB.Enabled = true;
                this.especialidadCB.Enabled = true;
                this.diagnosticoBox.Enabled = true;
                this.guardarBTN.Enabled=true;
            }
        }

        private void buscarPacienteBTN_Click(object sender, EventArgs e)
        {
            Paciente p = PacienteControlador.Instance.buscarPaciente(rutBox.Text);

            if (p == null)
            {
                MessageBox.Show(Properties.Resources.PacienteBusquedaError);
                rutBox.ResetText();
                rutBox.Focus();
            }
            else
            {
                nombrePaciente.Text = p.ApellidoPaterno+ " "+p.ApellidoMaterno+","+p.Nombre;
                rutBox.Text = p.Run;
                this.encargadoBox.Enabled = true;
                this.encargadoBTN.Enabled = true;
            }
        }

        private void limpiarBTN_Click(object sender, EventArgs e)
        {
            reestablecer();
            rutBox.Focus();
        }

        private void buscarUrgencia_Click(object sender, EventArgs e)
        {
            
         
            if (!UrgenciaControlador.Instance.buscarUrgencia(int.Parse(this.numConsulta.Value+""),out ID_URGENCIA,out NUMEROBOX,out ENCARGADO,out PACIENTE, out FECHAHORA_URGENCIA,out PRIORIDAD_URGENCIA,out  ESPECIALIDAD_URGENCIA, out  DIAGNOSTICO_URGENCIA))
            {
                MessageBox.Show(Properties.Resources.UrgenciaBError);
                
                fechaConsulta.Focus();
            }
            else
            {
                //negarEnabled();
                this.rutBox.Text = PACIENTE;
                this.encargadoBox.Text = ENCARGADO;
                this.diagnosticoBox.Text = DIAGNOSTICO_URGENCIA;
                this.fechaConsulta.Value = FECHAHORA_URGENCIA;
                this.urgenciaCB.Text = PRIORIDAD_URGENCIA;
                this.especialidadCB.Text = ESPECIALIDAD_URGENCIA;
                //u.Id=u.
                
            }
        }
    }
}
